package es.decloud.service;

import java.util.List;

import es.decloud.model.Alumno;

/**
 * Business Service Interface to handle communication between web and
 * persistence layer.
 * 
 * @author <a href="mailto:dtercero@gmail.com">David Tercero </a>
 */
public interface AlumnoManager extends GenericManager<Alumno, Long> {

	/**
	 * Obtiene el listado de alumnos pertenecientes a un centro
	 * 
	 * @param idCentro
	 *            identificador del centro
	 * @return lista de alumnos
	 */
	List<Alumno> getAlumnosCentro(Long idCentro);

	/**
	 * Obtiene el listado de alumnos de un centro que aun no estan asignados a
	 * ningun aula
	 * 
	 * @param idCentro
	 *            identificador del centro
	 * @return lista de alumnos no asignados
	 */
	List<Alumno> getAlumnosDisponibles(Long idCentro);

	/**
	 * Recupera un alumno por el alumnoId. Se lanza una excepcion si no
	 * encontramos el alumno
	 * 
	 * @param alumnoId
	 *            identificador del alumno
	 * @return Alumno
	 */
	Alumno getAlumno(String alumnoId);

	/**
	 * {@inheritDoc}
	 */
	Alumno saveAlumno(Alumno alumno);

	/**
	 * {@inheritDoc}
	 */
	void removeAlumno(Long alumnoId);
}
